﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using OpenFrameworkCore.Serialize;
using System.Xml.Serialization;

namespace OpenFrameworkCore.Controls
{
    /// <summary>
    /// ControlBase의 Context 클래스
    /// </summary>
    [XmlTypeAttribute()]
	public class BasicControlContext : ControlBaseContext
    {
        private int x;

        /// <summary>
        /// X 좌표
        /// </summary>
        [XmlAttribute]
        public int X
        {
            get
            {
                return x;
            }
            set
            {
                x = value;

				RaisePropertyChanged("X");
            }
        }

        private int y;

        /// <summary>
        /// Y 좌표
        /// </summary>
        [XmlAttribute]
        public int Y
        {
            get
            {
                return y;
            }
            set
            {
                y = value;

				RaisePropertyChanged("Y");
            }
        }

        private double angle;

        /// <summary>
        /// 각도
        /// </summary>
        [XmlAttribute]
        public double Angle
        {
            get
            {
                return angle;
            }

            set
            {
                angle = value;

				RaisePropertyChanged("Angle");
            }
        }

        private double width;

        /// <summary>
        /// Width
        /// </summary>
        [XmlAttribute]
        public double Width
        {
            get
            {
                return width;
            }
            set
            {
                width = value;

				RaisePropertyChanged("Width");
            }
        }

        private double height;

        /// <summary>
        /// Height
        /// </summary>
        [XmlAttribute]
        public double Height
        {
            get
            {
                return height;
            }
            set
            {
                height = value;

				RaisePropertyChanged("Height");
            }
        }

        private double opacity;

        /// <summary>
        /// Opacity
        /// </summary>
        [XmlAttribute]
        public double Opacity
        {
            get
            {
                return opacity;
            }
            set
            {
                opacity = value;

				RaisePropertyChanged("Opacity");
            }
        }
	}
}
